package com.ruoyi.delivery.mapper;

import com.ruoyi.delivery.domain.DelCarrierInfo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 物流商 数据层
 *
 * @author hu
 */
public interface DelCarrierMapper {
    /**
     * 根据条件分页查询物流商信息
     * @param carrierNo 物流商编号
     * @param carrierName 物流商名字
     * @param carrierType 物流商类型
     * @param carrierAddress 物流商地址
     * @param contactPhone 物流商联系电话
     * @param contactPerson 物流商负责人
     * @param contactEmail 负责人邮箱
     * @param activeStatus 物流商状态
     * @param offset 分页偏移量
     * @param pageSize 分页大小
     * @return 物流商信息列表
     */
    List<DelCarrierInfo> getCarrierInfoList(
                               @Param("carrierNo") String carrierNo,
                               @Param("carrierName") String carrierName,
                               @Param("carrierType") Integer carrierType,
                               @Param("carrierAddress") String carrierAddress,
                               @Param("contactPhone") String contactPhone,
                               @Param("contactPerson") String contactPerson,
                               @Param("contactEmail") String contactEmail,
                               @Param("activeStatus") Integer activeStatus,
                               @Param("offset") int offset,
                               @Param("pageSize") int pageSize);

    /**
     * 获取物流商信息总记录数
     * @param carrierNo 物流商编号
     * @param carrierName 物流商名字
     * @param carrierType 物流商类型
     * @param carrierAddress 物流商地址
     * @param contactPhone 物流商联系电话
     * @param contactPerson 物流商负责人
     * @param contactEmail 负责人邮箱
     * @param activeStatus 物流商状态
     * @return 总记录数
     */
    int getCarrierInfoCount
                      (@Param("carrierNo") String carrierNo,
                       @Param("carrierName") String carrierName,
                       @Param("carrierType") Integer carrierType,
                       @Param("carrierAddress") String carrierAddress,
                       @Param("contactPhone") String contactPhone,
                       @Param("contactPerson") String contactPerson,
                       @Param("contactEmail") String contactEmail,
                       @Param("activeStatus") Integer activeStatus
            );

    /**
     * 更新物流商信息
     * @param carrierInfo 物流商信息对象
     * @return 更新影响的行数
     */
    int updateCarrierInfo(DelCarrierInfo carrierInfo);

    /**
     * 删除单个物流商
     * @param carrierNo 物流商编号
     * @return 删除影响的行数
     */
    int deleteCarrierInfo(@Param("carrierNo") String carrierNo);

    /**
     * 批量删除物流商
     * @param carrierNos 物流商编号集合
     * @return 删除影响的行数
     */
    int deleteCarriers(@Param("carrierNos") List<String> carrierNos);

    /**
     * 新增物流商信息
     * @param carrierInfo 物流商信息对象
     * @return 插入影响的行数
     */
    int insertCarrierInfo(DelCarrierInfo carrierInfo);

    /**
     * 根据id查找物流商
     * @param carrierNo 物流商编号
     * @return 物流商信息
     */
    DelCarrierInfo getCarrierByCarrierNo(@Param("carrierNo") String carrierNo);

}

